﻿/** CSS
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
* 
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
; (function () {
	// CommonJS
	typeof (require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;

	function Brush() {
		function getKeywordsCSS(str) {
			return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b';
		};

		function getValuesCSS(str) {
			return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b';
		};

		var keywords = 'ascent azimuth background-attachment background-color background-image background-position ' +
						'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' +
						'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' +
						'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' +
						'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' +
						'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' +
						'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' +
						'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' +
						'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' +
						'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' +
						'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' +
						'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' +
						'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' +
						'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index';

		var values = 'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder ' +
						'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed ' +
						'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero default digits disc dotted double ' +
						'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia ' +
						'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic ' +
						'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha ' +
						'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower ' +
						'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset ' +
						'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side ' +
						'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow ' +
						'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize ' +
						'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal ' +
						'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin ' +
						'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';

		var fonts = '[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif';

		this.regexList = [
			{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
			{regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings
			{regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings
			{regex: /\#[a-fA-F0-9]{3,6}/g, css: 'value' }, 	// html colors
			{regex: /(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)/g, css: 'value' }, 	// sizes
			{regex: /!important/g, css: 'color3' }, // !important
			{regex: new RegExp(getKeywordsCSS(keywords), 'gm'), css: 'keyword' }, // keywords
			{regex: new RegExp(getValuesCSS(values), 'g'), css: 'value' }, 	// values
			{regex: new RegExp(this.getKeywords(fonts), 'g'), css: 'color1'}		// fonts
			];

		this.forHtmlScript({
			left: /(&lt;|<)\s*style.*?(&gt;|>)/gi,
			right: /(&lt;|<)\/\s*style\s*(&gt;|>)/gi
		});
	};

	Brush.prototype = new SyntaxHighlighter.Highlighter();
	Brush.aliases = ['css'];

	SyntaxHighlighter.brushes.CSS = Brush;

	// CommonJS
	typeof (exports) != 'undefined' ? exports.Brush = Brush : null;
})();


/**
* C#
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
* 
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
; (function () {
	// CommonJS
	typeof (require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;

	function Brush() {
		var keywords = 'abstract as base bool break byte case catch char checked class const ' +
						'continue decimal default delegate do double else enum event explicit ' +
						'extern false finally fixed float for foreach get goto if implicit in int ' +
						'interface internal is lock long namespace new null object operator out ' +
						'override params private protected public readonly ref return sbyte sealed set ' +
						'short sizeof stackalloc static string struct switch this throw true try ' +
						'typeof uint ulong unchecked unsafe ushort using virtual void while';

		function fixComments(match, regexInfo) {
			var css = (match[0].indexOf("///") == 0)
				? 'color1'
				: 'comments'
				;

			return [new SyntaxHighlighter.Match(match[0], match.index, css)];
		}

		this.regexList = [
			{ regex: SyntaxHighlighter.regexLib.singleLineCComments, func: fixComments }, 	// one line comments
			{regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, 		// multiline comments
			{regex: /@"(?:[^"]|"")*"/g, css: 'string' }, 		// @-quoted strings
			{regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, 		// strings
			{regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, 		// strings
			{regex: /^\s*#.*/gm, css: 'preprocessor' }, 	// preprocessor tags like #region and #endregion
			{regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, 		// c# keyword
			{regex: /\bpartial(?=\s+(?:class|interface|struct)\b)/g, css: 'keyword' }, 		// contextual keyword: 'partial'
			{regex: /\byield(?=\s+(?:return|break)\b)/g, css: 'keyword'}			// contextual keyword: 'yield'
			];

		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
	};

	Brush.prototype = new SyntaxHighlighter.Highlighter();
	Brush.aliases = ['c#', 'c-sharp', 'csharp'];

	SyntaxHighlighter.brushes.CSharp = Brush;

	// CommonJS
	typeof (exports) != 'undefined' ? exports.Brush = Brush : null;
})();

/** JScript
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
* 
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
; (function () {
	// CommonJS
	typeof (require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;

	function Brush() {
		var keywords = 'break case catch continue ' +
						'default delete do else false  ' +
						'for function if in instanceof ' +
						'new null return super switch ' +
						'this throw true try typeof var while with'
						;

		var r = SyntaxHighlighter.regexLib;

		this.regexList = [
			{ regex: r.multiLineDoubleQuotedString, css: 'string' }, 		// double quoted strings
			{regex: r.multiLineSingleQuotedString, css: 'string' }, 		// single quoted strings
			{regex: r.singleLineCComments, css: 'comments' }, 		// one line comments
			{regex: r.multiLineCComments, css: 'comments' }, 		// multiline comments
			{regex: /\s*#.*/gm, css: 'preprocessor' }, 	// preprocessor tags like #region and #endregion
			{regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword'}			// keywords
			];

		this.forHtmlScript(r.scriptScriptTags);
	};

	Brush.prototype = new SyntaxHighlighter.Highlighter();
	Brush.aliases = ['js', 'jscript', 'javascript'];

	SyntaxHighlighter.brushes.JScript = Brush;

	// CommonJS
	typeof (exports) != 'undefined' ? exports.Brush = Brush : null;
})();

/** PHP
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
* 
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
; (function () {
	// CommonJS
	typeof (require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;

	function Brush() {
		var funcs = 'abs acos acosh addcslashes addslashes ' +
						'array_change_key_case array_chunk array_combine array_count_values array_diff ' +
						'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill ' +
						'array_filter array_flip array_intersect array_intersect_assoc array_intersect_key ' +
						'array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map ' +
						'array_merge array_merge_recursive array_multisort array_pad array_pop array_product ' +
						'array_push array_rand array_reduce array_reverse array_search array_shift ' +
						'array_slice array_splice array_sum array_udiff array_udiff_assoc ' +
						'array_udiff_uassoc array_uintersect array_uintersect_assoc ' +
						'array_uintersect_uassoc array_unique array_unshift array_values array_walk ' +
						'array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert ' +
						'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress ' +
						'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir ' +
						'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists ' +
						'closedir closelog copy cos cosh count count_chars date decbin dechex decoct ' +
						'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log ' +
						'error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded ' +
						'feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents ' +
						'fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype ' +
						'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf ' +
						'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname ' +
						'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt ' +
						'getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext ' +
						'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set ' +
						'interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double ' +
						'is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long ' +
						'is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault ' +
						'is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br ' +
						'parse_ini_file parse_str parse_url passthru pathinfo print readlink realpath rewind rewinddir rmdir ' +
						'round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split ' +
						'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes ' +
						'stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk ' +
						'strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime ' +
						'strtoupper strtr strval substr substr_compare';

		var keywords = 'abstract and array as break case catch cfunction class clone const continue declare default die do ' +
						'else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach ' +
						'function include include_once global goto if implements interface instanceof namespace new ' +
						'old_function or private protected public return require require_once static switch ' +
						'throw try use var while xor ';

		var constants = '__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__';

		this.regexList = [
			{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, 		// one line comments
			{regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, 		// multiline comments
			{regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, 		// double quoted strings
			{regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, 		// single quoted strings
			{regex: /\$\w+/g, css: 'variable' }, 		// variables
			{regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, 		// common functions
			{regex: new RegExp(this.getKeywords(constants), 'gmi'), css: 'constants' }, 		// constants
			{regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword'}			// keyword
			];

		this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
	};

	Brush.prototype = new SyntaxHighlighter.Highlighter();
	Brush.aliases = ['php'];

	SyntaxHighlighter.brushes.Php = Brush;

	// CommonJS
	typeof (exports) != 'undefined' ? exports.Brush = Brush : null;
})();

/** SQL
 * SyntaxHighlighter
 * http://alexgorbatchev.com/SyntaxHighlighter
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
 *
 * @version
 * 3.0.83 (July 02 2010)
 * 
 * @copyright
 * Copyright (C) 2004-2010 Alex Gorbatchev.
 *
 * @license
 * Dual licensed under the MIT and GPL licenses.
 */
;(function()
{
	// CommonJS
	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;

	function Brush()
	{
		var funcs	=	'abs avg case cast coalesce convert count current_timestamp ' +
						'current_user day isnull left lower month nullif replace right ' +
						'session_user space substring sum system_user upper user year';

		var keywords =	'absolute action add after alter as asc at authorization begin bigint ' +
						'binary bit by cascade char character check checkpoint close collate ' +
						'column commit committed connect connection constraint contains continue ' +
						'create cube current current_date current_time cursor database date ' +
						'deallocate dec decimal declare default delete desc distinct double drop ' +
						'dynamic else end end-exec escape except exec execute false fetch first ' +
						'float for force foreign forward free from full function global goto grant ' +
						'group grouping having hour ignore index inner insensitive insert instead ' +
						'int integer intersect into is isolation key last level load local max min ' +
						'minute modify move name national nchar next no numeric of off on only ' +
						'open option order out output partial password precision prepare primary ' +
						'prior privileges procedure public read real references relative repeatable ' +
						'restrict return returns revoke rollback rollup rows rule schema scroll ' +
						'second section select sequence serializable set size smallint static ' +
						'statistics table temp temporary then time timestamp to top transaction ' +
						'translation trigger true truncate uncommitted union unique update values ' +
						'varchar varying view when where with work';

		var operators =	'all and any between cross in join like not null or outer some';

		this.regexList = [
			{ regex: /--(.*)$/gm,												css: 'comments' },			// one line and multiline comments
			{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,	css: 'string' },			// double quoted strings
			{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	css: 'string' },			// single quoted strings
			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),				css: 'color2' },			// functions
			{ regex: new RegExp(this.getKeywords(operators), 'gmi'),			css: 'color1' },			// operators and such
			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),				css: 'keyword' }			// keyword
			];
	};

	Brush.prototype	= new SyntaxHighlighter.Highlighter();
	Brush.aliases	= ['sql'];

	SyntaxHighlighter.brushes.Sql = Brush;

	// CommonJS
	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();

/** XML
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
* 
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
; (function () {
	// CommonJS
	typeof (require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;

	function Brush() {
		function process(match, regexInfo) {
			var constructor = SyntaxHighlighter.Match,
				code = match[0],
				tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
				result = []
				;

			if (match.attributes != null) {
				var attributes,
					regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
										'\\s*=\\s*' +
										'(?<value> ".*?"|\'.*?\'|\\w+)',
										'xg');

				while ((attributes = regex.exec(code)) != null) {
					result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
					result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
				}
			}

			if (tag != null)
				result.push(
					new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
				);

			return result;
		}

		this.regexList = [
			{ regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'), css: 'color2' }, // <![ ... [ ... ]]>
			{regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // <!-- ... -->
			{regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
		];
	};

	Brush.prototype = new SyntaxHighlighter.Highlighter();
	Brush.aliases = ['xml', 'xhtml', 'xslt', 'html'];

	SyntaxHighlighter.brushes.Xml = Brush;

	// CommonJS
	typeof (exports) != 'undefined' ? exports.Brush = Brush : null;
})();


